1
Pendahuluan Agen Pemecah Masalah
PolyU COMP5511Kuliah 2
00:00

Dari Refleks ke Perencanaan

Dalam evolusi desain agen, kita beralih dari Agen Refleks, yang memetakan persepsi langsung ke tindakan berdasarkan aturan sederhana (misalnya, “Jika mobil di depan mengerem, mulai mengerem”), ke Agen Pemecah Masalah. Agen refleks beroperasi berdasarkan konteks langsung, sedangkan agen pemecah masalah bersifat Berbasis Tujuan. Mereka mempertimbangkan konsekuensi masa depan dari tindakan mereka untuk menemukan urutan yang memenuhi tujuan tertentu.

  • Agen Refleks: $Action = Function(Percept)$
  • Agen Perencanaan: $Action\_Sequence = Search(State, Goal)$

Representasi Keadaan Atomik

Pada tingkat fundamental ini, agen menggunakan Representasi Atomik. Ini berarti keadaan dunia diperlakukan sebagai kotak hitam—simpul tunggal tanpa struktur internal yang terlihat oleh algoritma pencarian. Agen hanya bernalar tentang:

  • Keadaan ($S$): Cuplikan lingkungan.
  • Tindakan ($A$): Transisi antar keadaan.
  • Uji Tujuan: Pemeriksaan boolean apakah keadaan $s \in S_{goal}$.

Siklus Pemecahan Masalah

Agen pemecah masalah mengikuti siklus empat langkah yang berbeda untuk menavigasi lingkungan:

  1. Formulasi Tujuan: Menentukan tujuan mana yang akan dikejar berdasarkan situasi saat ini.
  2. Formulasi Masalah: Mengabstraksikan dunia nyata ke dalam model matematika (Keadaan dan Tindakan).
  3. Pencarian: Mensimulasikan urutan tindakan untuk menemukan jalur optimal.
  4. Eksekusi: Melakukan tindakan yang ditemukan selama fase pencarian tanpa pertimbangan lebih lanjut (dengan asumsi lingkungan statis).
Implementasi Python (agent_types.py)
1
class ReflexAgent:
2
defact( self, percept):
3
# Pemetaan langsung: Aturan -> Tindakan
4
return rules.get(percept, default_action)
5
6
class ProblemSolvingAgent:
7
def__init__( self):
8
self.seq = [] # Urutan tindakan yang dibuffer
9
10
defact( self, percept):
11
# Jika kita sedang dalam eksekusi, lanjutkan
12
ifself.seq:
13
returnself.seq.pop( 0()
14
15
# Jika tidak, Rencanakan (Cari)
16
state = self.update_state(percept)
17
goal = self.formulate_goal(state)
18
problem = self.formulate_problem(state, goal)
19
20
# Pencarian mengembalikan daftar tindakan
21
self.seq = search_algorithm(problem)
22
23
returnself.seq.pop( 0()